Multi-thrustered hover craft

ABSTRACT

A feedback control system for a multi-thrusted hovercraft is disclosed. In a hover craft having a plurality of vertically oriented thruster that are controlled by a system that relies on operator input and also the use of sensors to control the altitude and attitude of the hovercraft. A set of simultaneous equations is constructed and solved to reconcile the demands placed on the thrusters to maintain altitude and attitude of the hovercraft.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims benefit to provisional application No.60/040,026 filed Mar 4, 1997.

Statement as to Rights to inventions made under Federally sponsoredresearch and development.

Not applicable

BACKGROUND OF THE INVENTION

1. Field of the Invention

This present invention relates to a flying craft wherein the craft usesa computer-implemented control algorithm to maintain altitude controland stabilize the roll of the craft about two axes by using variationsin output from fixed thrusters. Applications include, but are notrestricted to, toys, hobby crafts, and crafts capable of transportingheavy or large loads.

2. Description of Prior Art

Searches were conducted in the following fields: 244/17.13; 244/76; and244/23.

Alistair J. Jackson, U.S. Pat. No. 4,664,340, May 12, 1987, discloses astabilization system for hovering and flying vehicles. The patentapplication included block diagrams which lay out in a non-specificmanner the concept of using altitude controls and altitude sensors tomeasure the height and orientation of a hovering craft.

There are shortcomings in the control method outlined by Jackson.

First and foremost, the block diagram shown in FIG. 6 (Ref. Jackson FIG.6) lays out the control method in only the broadest conceptual terms. Itis not explained with enough specifity to enable an engineer or otherpractitioner familiar with the art to build it.

In order for a physically realizable feedback controller to function,among other requirements, it must apply actual numerical values of gainto the system error signals (Jackson calls these “difference signals”).The error signals are signals which represent the difference betweenoperator commands and the current state of the craft. If indeed thosefeedback gains were known to Jackson, they are not specified in thepatent. Because of this omission, the controller outlined could not bebuilt as specified.

Another apparent shortcoming of Jackson's control method is that thereis no formal method outlined for integrating the altitude error and theroll error to bring about the coordinated movements of the craft tosimultaneously, in time, correct for roll error and altitude error. In areal flying platform, it would be desirable to perform maneuvers inwhich the craft simultaneously changed roll angle and altitude, as forexample, simultaneously rolling from zero degrees to twenty degreesabout one axis and climbing from 100 feet altitude to 150 feet.Jackson's control method does not specify how such integrated maneuverscould be carried out.

Paul S. Moller, U.S. Pat. No. 4,795,111, Jan. 3, 1989, discloses aflying platform using ducted fan engines. The invention is concernedwith ducted fan engines as the means of propulsion and does not addressa means of insuring stability of the craft, let alone a controlalgorithm.

Moller's disclosure principally addresses the specifications of themechanical and aerodynamic problems associated with using ducted fanengines as a means of propulsion and attitude control. It is theregulation of thrust values in precise amounts which is the essence ofthe control problem, and Moller's disclosure does not address thespecifics of how thrust values would be computed for a craft using suchengines.

Lorant Forizs, U.S. Pat. No. 4,537,372, Aug. 27, 1985, discloses atwo-thrustered craft which seems inherently unstable in that it wouldrotate freely about its long axis with no means of compensation ofcontrol.

As with the Moller disclosure, the Forizs disclosure gives no convincingdescription of how the craft would be stabilized in flight. Regardlessof this, the lack of physical means for forcing rotation about the longaxis renders the craft uncontrollable.

Cordova Maxwell Brady, U.S. Pat. No. 3,985,320, Oct. 12, 1976, relies ongyroscopic stabilizing forces for control.

As for the other disclosures mentioned, no specifics are givenconcerning how rotation forces would be scheduled to effect control ofrotation about the craft's spatial axes.

SUMMARY OF THE INVENTION

A computerized method to maintain altitude control and stabilize theroll of a hover craft having multiple fixed thrusters.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an isometric view of a multi-thrustered hover craft.

FIG. 2 is a side view of the multi-thrustered hover craft with a hookand cable for attaching loads.

FIG. 3 is a simplified free body diagram illustrating dimensions andangles used in the explanation of the control algorithms.

FIG. 4 is a block diagram representation of the state variable feedbackemployed for control of roll.

FIG. 5 is a block diagram representation of an open loop state variablemodel of an altitude controller.

FIG. 6 is a block diagram representation of a state variable feedbackfor control of altitude.

FIG. 7 is a flow chart of the overall operation of the computer softwaresystem.

FIG. 8 is a flow chart which expands the block “Compute Required Thrust”of FIG. 7.

FIG. 9 is a flow chart which expands the block “Compute Tsum” of FIG. 8.

FIG. 10 is a flow chart which expands the block “Compute ΔT₁” of FIG. 8.

FIG. 11 is a flow chart which expands the block “Compute ΔT₂” of FIG. 8.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

One problem with controlling a body having rotating devices, such asspinning propellers, or jet engines with spinning turbines, is that theangular momentum of the rotating masses causes a gyroscopic effect thatresists moments applied to rotate the body to a new orientation. Tocancel the rotational moment produced by engines, half the engines couldrotate in a direction opposite to the rotation of the other half. Withor without counter rotating masses, the configurations shown in theprior art are inherently unstable in the absence of some sort of controlsystem that regulates the action of thrust producing means to maintain ahover craft in a desired attitude at a desired altitude.

As can be seen from the prior art, there is a need for an improved andsimpler method to maintain altitude control and stabilize the roll of ahover craft. As will be seen from the subsequent description of thepreferred embodiments of the present invention, the shortcomings anddeficiencies inherent in the present state of the art ofmulti-thrustered hover craft are overcome by the computerized method ofthe present invention.

The computerized method as shown in FIGS. 7, 8, 9, 10 and 11 of thepresent invention is implemented by an on-board computer, andsimultaneously controls height and attitude, given control inputs thatconsist of:

The desired altitude h

The desired roll angle θ₁

The desired roll angle θ₂

Alternatively, the present method can be implemented in analog ordigital hardware to accomplish the same results.

For a craft having 2n thrusters (an even number), the control algorithmcompares the current values [h, θ₁, θ₂]_(actual) to the desired values[h, θ₁, θ₂]_(desired) and computes the thrusts T₁, T₂ . . . T_(2n)necessary to bring the actual vehicle state [h, θ₁ , θ₂]_(actual) intocompliance with the desired state [h, θ₁, θ₂]_(desired).

The control algorithm utilizes three separate feedback control loopswhich are linked together through a set of simultaneous equations. Onecontrol loop produces an output which is related to the error in rollangle θ₁, the second produces an output which is related to the error inroll angle θ₂, and the third produces an output which is related to theerror in height. Here, error is the difference between the control inputvalue and the actual value of a parameter. For example, the error in θ₁is e₀₁=[θ₁]_(actual)−[θ₁]_(desired).

In practical use, the control input value would be provided by theoperator of the craft, who could be on board the vehicle, or couldcontrol it from a remote position in the air or on the ground. In anycase, the operator would use controls at his disposal to send to theonboard computer signals proportional to the desired state of the craft.For instance, a hand-held radio transmitting device could be used by anoperator positioned on the ground to control the roll angle θ₁. In thatevent, the transmitter would send a signal which would be decoded by areceiver on the craft. The radio receiver on the craft would then send asignal, [θ¹]_(desired) to the controller. The signal θ_(desired) isshown in FIG. 4 of the block diagram of the roll controller.

While hovering at the set altitude, small perturbations in the altitudeand attitude of the craft would occur as a result of winds, thermals,changes in air density, and other atmospheric processes. Suppose forinstance that a momentary gust of wind caused the craft to roll aboutaxis number 1 by 2°. Then the roll angle error e₀₁ would be:

e ₀₁=[θ₁]_(actual)−[θ₁]_(desired)=2°−0°=2°

In the roll-control algorithm that controls roll about axis number 1,this error would be used to calculate a difference in thrusts that wouldrestore the craft to its desired orientation.

Since the altitude of the craft must also be controlled, for a crafthaving 2n thrusters, an altitude control algorithm is used to computethe sums of thrusts T₁+T₂+ . . . +T_(2n) that will restore the altitudeto the desired value. If, for instance, the operator of the craftspecified a desired altitude of 1000 ft. and the current altitude was900 ft., the onboard altitude controller would compute a thrust sum thatwould restore the craft to the desired altitude.

At any given instant the errors in h, θ₁, and θ₂ would cause theattitude and altitude controllers to each compute thrusts T₁, T₂, . . .T_(n) required to correct the state of the craft [h, θ₁, and θ₂]. Ingeneral, each of the three controllers would compute different thruststhat would correspond to the optimal thrusts for their respective stateelements. A set of simultaneous equations is constructed and solved toreconcile the demands placed on the thrusters by the three controllers.

The roll-control algorithm receives orientation inputs from two sensorsthat measure roll angles θ₁ and θ₂ about two orthogonal axes located ina plane parallel to the plane of the body of the craft (see FIGS. 1 and3). For a craft having four thrusters, this algorithm samples the rollangles θ₁ and θ₂ at frequent intervals, and from the roll information,calculates thrusts T₁, T₂, T₃, and T₄ needed to correct the roll aboutaxes 1 and 2. Since roll about axis 1 is independent of roll about axis2, the roll-correction algorithm is itself separable, and is broken intotwo parts, one for correcting roll angle θ₁ and the other for correctingroll angle θ₂. For the four-thruster version of the craft shown in FIG.1, roll about axis 1 is controlled by the difference between thrust sums(T₁+T₂) and (T₃+T₄). That is, if the sum of forces (T₁+T₂) is greaterthan the sum of forces (T₃+T₄), then the craft will roll in a positiveangular direction about axis 1, as shown in FIG. 3, and the roll rateθ=dθ₁/dt will be related to the magnitude of the difference. Similarly,roll about axis 2 is controlled by the difference between thrust sums(T₂+T₄) and (T₁+T₃). Thus, control of the roll orientation of the craftis accomplished by controlling the following thrust quantities:

(T₁+T₂)−(T₃+T₄); Used to control θ₁ and dθ ₁ /dt   Eq. 1)

(T₂+T₄)−(T₁+T₃); Used to control θ₂ and dθ ₂ /dt   Eq. 2)

Looking at just the roll angle θ₁ about axis 1, if at some point in timeθ₁ is not equal to its desired value, then it can be pushed toward itsdesired value by a restoring torque about axis 1. The relation between arestoring torque T and the rotational acceleration of the vehicle aboutaxis 1 is:

T=J₁{umlaut over (θ)}₁   Eq. 3)

where J₁ is the moment of inertia of the vehicle about axis 1, and{umlaut over (θ)}₁ is the second time derivative of θ₁. The restoringmoment T about axis 1 is proportional to the difference between the sumof thrusts (T₃+T₄) and the sum of thrusts (T₁+T₂). Thus, for thefour-thrustered craft shown in FIG. 1, if L is the length of the crafton the side perpendicular to axis 1, and all thrusters are locateddistance L/2 from axis 1 then:

T=[(T₃+T₄)−(T₁+T₂)]*(L/2)   Eq. 4)

$\begin{matrix}\text{Eq. 5)} & {{\overset{¨}{\theta}}_{1} = {\left\lbrack \frac{\left( {T_{3} + T_{4}} \right) - \left( {T_{1} + T_{2}} \right)}{2 \star J_{1}} \right\rbrack \star L}}\end{matrix}$

For the general case in which the pair of thrusters T₃, T₄ is notequally spaced from the pair T₁, T₂ and in which T₁ and T₂ are spaced ata distance L_(T1) and the pair T₃, T₄ are spaced at a distance L_(T2)from the centroidal axis, these expressions become:

T=(T₃+T₄)L_(T2)−(T₁+T₂)L_(T1)   Eq. 6)

{umlaut over (θ)}₁=((T₃+T₄)L_(T2)−(T₁+T₂)L_(T1))/J₁   Eq. 7)

The system states are assigned as follows:

x ₁=θ₁ , x ₁ =x ₂=θ₁   Eq. 8)

Then the state variable equation for the system is: $\begin{matrix}\text{Eq. 9)} & {\begin{bmatrix}{\overset{.}{x}}_{1} \\{\overset{.}{x}}_{2}\end{bmatrix} = {\begin{bmatrix}1 & 0 \\0 & 1\end{bmatrix}\quad\begin{bmatrix}x_{2} \\\overset{¨}{\theta}\end{bmatrix}}}\end{matrix}$

where θ₁ is given in Eq. 5) or Eq. 7) above. FIG. 4 illustrates theresulting state variable feedback controller for roll, and shows thefeedback gains (labeled K₁₁, K₁₂, K₂₁, and K₂₂) employed to producecontrol outputs u₁ and u₂. The control outputs u₁ and u₂ have units offorce, and represent the instantaneous values of thrust needed tocorrect a non-zero error in the roll angle, θ_(actual)−θ_(desired)Thefeedback gains K₁₁, K₁₂, K₂₁, and K₂₂ are given by: $\begin{matrix}\text{Eq. 10)} & {K_{11} = {\frac{\lambda_{2}{J\left( {{\alpha \quad \lambda_{1}^{2}} + \frac{\beta \quad L_{T_{2}}}{J}} \right)}}{\alpha \quad {L_{T1}\left( {\lambda_{2} - \lambda_{1}} \right)}} - \frac{\lambda_{2}{J\left( {{\gamma \quad \lambda_{2}^{2}} + \frac{\delta \quad L_{T_{2}}}{J}} \right)}}{\gamma \quad {L_{T1}\left( {\lambda_{2} - \lambda_{1}} \right)}}}} \\\text{Eq. 11)} & {K_{12} = {\frac{J\left( {{\gamma \quad \lambda_{2}^{2}} + \frac{\delta \quad L_{T_{2}}}{J}} \right)}{\gamma \quad {L_{T1}\left( {\lambda_{2} - \lambda_{1}} \right)}} - \frac{J\left( {{\alpha \quad \lambda_{1}^{2}} + \frac{\beta \quad L_{T_{2}}}{J}} \right)}{\alpha \quad {L_{T1}\left( {\lambda_{2} - \lambda_{1}} \right)}}}} \\\text{Eq. 12)} & {K_{21} = {\frac{\beta \quad \lambda_{2}}{\quad {\alpha \left( {\lambda_{2} - \lambda_{1}} \right)}} - \frac{\delta \quad \lambda_{1}}{\gamma \left( {\lambda_{2} - \lambda_{1}} \right)}}} \\\text{Eq. 13)} & {K_{22} = {\frac{\delta}{\quad {\gamma \left( {\lambda_{2} - \lambda_{1}} \right)}} - \frac{\beta}{\alpha \left( {\lambda_{2} - \lambda_{1}} \right)}}}\end{matrix}$

In the computation of feedback gains K₁₁, K₁₂, K₂₁, and K₂₂, the valuesα, β, γ, and δ are arbitrary constants for which the ratios β/α and δ/γhave units of force. The values λ₁ and λ₂ are negative real-valuedsystem eigenvalues that control the rate at which the roll angleθ_(actual) converges on the control input value of roll angleθ_(desired).

The altitude control algorithm receives altitude inputs from an altitudesensor. These altitude readings are sampled at frequent intervals andare used to calculate the sum of thrusts required to control thealtitude of the craft. For the four-thrustered craft of FIG. 1 (or anycraft with any number of thrusters oriented in an upright configurationas in FIG. 1) and FIG. 2), the sum of vertical components of thrust isused to control altitude h and the rate of change of altitude h=dθ/dt.

At any given time, the following equation relates the sum of verticalforces to the mass of the craft and its vertical acceleration:

ΣF_(y) =ma   Eq. 14)

where forces F_(y) are vertically-directed, m is the total mass of thevehicle, and a is the acceleration of the vehicle in the verticaldirection. If θ is the roll-angle of the vehicle, then for a vehiclehaving four thrusters and p masses as in FIG. 1 and 3:$\text{Eq. 15)}\quad \begin{matrix}{{\sum\limits_{l = 1}^{4}\left( F_{y} \right)_{l}} = \quad {m\quad a}} \\{= \quad {{\left( {T_{1} + T_{2} + T_{3} + T_{4}} \right)\quad \cos \quad (\theta)} - {g\left( {\sum\limits_{j = 1}^{P}m_{j}} \right)}}} \\{= \quad {\left( {\sum\limits_{j = 1}^{P}m_{j}} \right) \star \frac{^{2}h}{t^{2}}}}\end{matrix}$

Since ${g\left( {\sum\limits_{j = 1}^{P}m_{j}} \right)} = w$

the weight of the craft: $\begin{matrix}\text{Eq. 16)} & {{{\left( {T_{1} + T_{2} + T_{3} + T_{4}} \right)\quad \cos \quad (\theta)} - w} = {\left( {\sum\limits_{j = 1}^{P}m_{j}} \right) \star \frac{^{2}h}{t^{2}}}} \\\text{Eq. 17)} & {\frac{^{2}h}{t^{2}} = \frac{{\left( {T_{1} + T_{2} + T_{3} + T_{4}} \right)\quad \star {\cos \quad (\theta)}} - w}{\sum\limits_{i = t}^{P}m_{i}}}\end{matrix}$

Make the substitutions: T=(T₁+T₂+T₃+T₄) and${\frac{w}{\sum\limits_{i = t}^{P}m_{i}} = g},$

where g is the gravitational acceleration, and setting the accelerationequal to the system input: $\begin{matrix}\text{Eq. 18)} & {\frac{^{2}h}{t^{2}} = {{{\frac{T \star {\cos \quad (\theta)}}{\sum\limits_{i = t}^{P}m_{i}} - g} = u}}}\end{matrix}$

By solving Eq. 16) for T, the total thrust T required to accelerate thevehicle with an acceleration equal to $u = \frac{^{2}h}{t^{2}}$

is: $\begin{matrix}\text{Eq. 19)} & {T = \frac{\left( {u + g} \right){\sum\limits_{i = t}^{P}m_{i}}}{\cos \quad (\theta)}}\end{matrix}$

The system states are assigned as follows: ${\begin{matrix}\text{Eq. 20)} & {x_{1} = {{h\quad {\overset{.}{x}}_{1}} = {x_{2} = {{\frac{h}{t}\quad {\overset{.}{x}}_{2}} =}}}}\end{matrix}\frac{^{2}h}{t^{2}}} = u$

where u is the open-loop input. The state variable equations are:$\begin{matrix}\text{Eq. 21)} & {\begin{bmatrix}{\overset{.}{x}}_{1} \\{\overset{.}{x}}_{2}\end{bmatrix} = {\begin{bmatrix}0 & 1 \\0 & 0\end{bmatrix}\quad\begin{bmatrix}x_{1} \\x_{2}\end{bmatrix}}}\end{matrix} + {\begin{bmatrix}0 \\1\end{bmatrix}\lbrack u\rbrack}$

FIG. 5 shows the open loop model of the altitude controller, beforestate variable feedback is applied.

After applying state feedback compensation to the state variable system,the resulting closed- loop feedback controller is as shown in FIG. 6.This figure illustrates the resulting state variable feedback controllerfor altitude, and shows the feedback gains (labeled K₁ and K₂) employedto produce feedback control output u. The control signal u has units ofacceleration, and represents the instantaneous difference between theupward acceleration of the craft and the gravitational acceleration. Thefeedback gains K₁ and K₂ are given by:

K₁=λ₁λ₂   Eq. 22)

K₂=(λ₁+λ₂)   Eq. 23)

where λ₁ and λ₂ are negative real-valued system eigenvalues that controlthe rate at which the actual height value h_(actual) converges on thedesired height value h_(desired). The acceleration input is:$\begin{matrix}\text{Eq. 24)} & {\lbrack u\rbrack = {\begin{bmatrix}K_{1} & K_{2}\end{bmatrix}\quad\begin{bmatrix}e \\x_{2}\end{bmatrix}}}\end{matrix}$

where e=x₁−h_(desired)=h_(actual)−h_(desired) is the error in thealtitude.

To summarize, the roll-control algorithms specify thrust differencesthat are needed to correct an error in the roll orientation of thecraft, and the altitude-control algorithm specifies a thrust sum that isneeded to correct an error in the altitude of the craft. For instance,for the four-thrustered craft illustrated in FIG. 1, at a given point intime the controllers that correct the roll about axes 1 and 2 and thecontroller that corrects altitude provide the following three equations:

The axis 1 roll controller computes the following thrust differencerequired to restore θ₁ to its desired value:

(T₁+T₂)−(T₃+T₄)=C₁   Eq. 25)

The axis 2 roll controller computes the following thrust differencerequired to restore θ₂ to its desired value:

(T₁+T₃)−(T₂+T₄)=C₂   Eq. 26)

The altitude controller computes the following thrust sum required forrestoring h to its desired value:

(T₁+T₂+T₃+T₄)=C₃   Eq. 27)

In Eqs. 25), 26), and 27) above, C₁, C₂, and C₃ are all constants havingunits of force. The value C₁ is specified by the roll controller foraxis 1. The value C₂ is specified by the roll controller for axis 2. Thevalue C₃ is specified by the altitude controller.

Eqs. 25), 26), and 27) represent three equations in four unknowns, T₁,T₂, T₃, and T₄. A fourth equation is needed to obtain a full set of fourequations in four unknowns. One way this fourth equation can be obtainedis by setting one of the thrusts to a selected constant value. Forinstance, when the vehicle reaches its equilibrium state, the requiredthrusts reach constant equilibrium values. So, one approach is to pickone thruster, compute its value at the equilibrium state of the vehicle,and assign it that constant value of thrust. For purposes ofillustration, suppose that thruster number one is assigned the followingthrust value:

T₁=C₄   Eq. 28)

then expression 25) through 28) are equivalent to the following set ofsimultaneous equations: $\begin{matrix}\text{Eq. 29)} & {{\begin{bmatrix}{- 1} & {- 1} & 1 & 1 \\1 & {- 1} & 1 & {- 1} \\1 & 1 & 1 & 1 \\1 & 0 & 0 & 0\end{bmatrix}\begin{bmatrix}T_{1} \\T_{2} \\T_{3} \\T_{4}\end{bmatrix}}\quad = \begin{bmatrix}C_{1} \\C_{2} \\C_{3} \\C_{4}\end{bmatrix}}\end{matrix}$

Solution of the set of equations in 29) yields the thrusts thatsimultaneously correct roll error and altitude error. Actuators on thethrusters set the thrusts to the values solved for in Eq. 29), and thecraft assumes the desired state [h, θ₁, θ₂]_(desired).

I claim:
 1. A method for forcing the altitude of a flying or hoveringcraft having three or more thrusters to an arbitrary operator-commandedaltitude value, the method comprising: determination of discrete pointsin time t_(k−1), t_(k), t_(k+1), each point in time being separated by afixed time interval Δt; determination, at the time point t_(k), of thevalue of the state variable {dot over (x)}₂ representing verticalacceleration of the craft, the vertical acceleration being measured bysensors located on the craft; determination, at the time point t_(k), ofthe value of the state variable X₂ representing vertical velocity of thecraft, the vertical velocity being measured, or computed as the verticalvelocity at the previous time point t_(k−1), plus the verticalacceleration at the previous time point multiplied by the time intervalΔt; determination, at the time point t_(k), of the value of the statevariable X₁ representing the actual altitude of the craft;determination, at the time point t_(k), of the altitude error of thecraft, the error being computed as the difference between the actualaltitude h_(actual) and the operator-commanded altitude h_(desired) ash_(error)=h_(actual)−h_(desired); computation, at the time point t_(k),of state feedback gains K₁ and K₂; computation, at the time point t_(k),of the vertical component ν of the normal vector to the principal planeof the vehicle, said vertical component being ν=cos (θ1_(actual))*cos(θ2_(actual)), and θ1_(actual) and θ2_(actual) being the actual valuesof roll angle about axis 1 and axis 2 respectively; computation, at thetime point t_(k), of the vertical acceleration u_(k) which will restorethe altitude to its operator-commanded value, said acceleration beingcalculated as the difference u_(k)=−k₁*[h_(error)]_(k−1)−k₂└X₂┘_(k−1);computation, at the time point t_(k), of the total thrust T_(sum) whichwill create the vertical acceleration required to restore the altitudeto its operator-commanded value, said total thrust being calculated as${T_{sum} = {\left\{ {u_{k} + g} \right\} \star \frac{m}{v}}},$

 m being the total mass of the craft, and g being the gravitationalacceleration; update of the altitude state variables for use in thestate calculations at the next time point, specifically[X₁]_(k−1)]=[X₁]_(k), [X₂]_(k−1)=[X₂]_(k), [{dot over (X)}₂]_(k−1)=[{dotover (X)}₂]_(k); application of the computed total thrust to the controlof the thrusters to maintain the desired altitude.
 2. A method forforcing the axis-1 roll angle of a flying or hovering craft having threeor more thrusters to an arbitrary operator-commanded roll value, themethod comprising: determination of discrete points in time t_(k−1),t_(k), t_(k+1), each point in time being separated by a fixed timeinterval Δt; determination, at the time point t_(k), of the value of thestate variable {dot over (X)}₄ representing roll angle acceleration ofthe craft about axis 1 passing through the mass centroid of the craft,the roll angle acceleration being measured by sensors located on thecraft; determination, at the time point t_(k), of the value of the statevariable X₄ representing roll velocity of the craft about axis 1, theroll velocity being measured, or computed as the roll velocity at theprevious time point t_(k−1), plus the roll acceleration at the previoustime point multiplied by the time interval Δt; determination, at thetime point t_(k), of the value of the state variable X₃=θ_(actual)representing roll angle of the craft about axis 1, the roll angle beingmeasured, or computed as the roll angle at the previous time pointt_(k−1), plus the roll velocity at the previous time point multiplied bythe time interval Δt; determination, at the time point t_(k), of thevalue of the roll angle error θ_(e) of the craft about axis 1, the errorbeing computed as the difference between the actual roll angleθ_(actual) and the operator-commanded roll angle θ_(desired) asθ_(e)=θ_(actual)−θ_(desired); computation, at the time point t_(k), ofstate feedback gains K₁₁, K₁₂, K₂₁, and K₂₂ for axis 1; computation, atthe time point t_(k), of the thrust difference T_(diff) ₁ about axis 1which will restore the axis 1 roll value to its operator-commandedvalue, said thrust difference being calculated as the difference${{\left\{ {{\left\lbrack k_{11} \right\rbrack \star \left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{12} \right\rbrack \star \left\lbrack X_{4} \right\rbrack_{k - 1}}} \right\} \star \frac{L_{T1}}{J}} - {\left\{ {{\left\lbrack k_{21} \right\rbrack \star \left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{22} \right\rbrack \star \left\lbrack X_{4} \right\rbrack_{k - 1}}} \right\} \star \frac{L_{T2}}{J}}};$

where J is the rotational moment of the craft about the axis, and L_(T1)and L_(T2) represent either the actual lateral distance of the thrustersfrom the axis, or the equivalent lateral distances of two equivalentsingle thrusters located on opposite sides of the axis; update of theaxis 1 state variables for use in the state calculations at the nexttime point, specifically [X₃]_(k−1)=[X₃]_(k), [X₄]_(k−1)=[X₄]_(k),$\left\lbrack {\overset{.}{X}}_{4} \right\rbrack_{k - 1} = {\left\lbrack {\overset{.}{X}}_{4} \right\rbrack_{k}.}$

applying the computed thrust differences to the control of the thrustersto maintain the desired roll value.
 3. A method for forcing the axis-2roll angle of a flying or hovering craft having three or more thrustersto an arbitrary operator-commanded roll value, the method comprising:determination of discrete points in time t_(k−1), t_(k), t_(k+1), eachpoint in time being separated by a fixed time interval Δt;determination, at the time point t_(k), of the value of the statevariable {dot over (X)}₆representing roll angle acceleration of thecraft about axis 2 passing through the mass centroid of the craft, theroll angle acceleration being measured by sensors located on the craft;determination, at the time point t_(k), of the value of the statevariable X₆ representing roll velocity of the craft about axis 2, theroll velocity being measured, or computed as the roll velocity at theprevious time point t_(k−1), plus the roll acceleration at the previoustime point multiplied by the time interval Δt; determination, at thetime point t_(k), of the value of the state variable X₅=θ_(actual)representing roll angle of the craft about axis 2, the roll angle beingmeasured, or computed as the roll angle at the previous time pointt_(k−1), plus the roll velocity at the previous time point multiplied bythe time interval Δt; determination, at the time point t_(k), of thevalue of the roll angle error θ_(e) of the craft about axis 2, the errorbeing computed as the difference between the actual roll angleθ_(actual) and the operator-commanded roll angle θ_(desired) asθ_(e)=θ_(actual)−θ_(desired); computation, at the time point t_(k), ofstate feedback gains K₁₁, K₁₂, K₂₁, and K₂₂ for axis 2; computation, atthe time point t_(k), of the thrust difference T_(diff) ₂ about axis 2which will restore the axis 2 roll value to its operator-conunandedvalue, the magnitude of said thrust difference being calculated as thedifference${{\left\{ {{\left\lbrack k_{11} \right\rbrack \star \left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{12} \right\rbrack \star \left\lbrack X_{6} \right\rbrack_{k - 1}}} \right\} \star \frac{L_{T1}}{J}} - {\left\{ {{\left\lbrack k_{21} \right\rbrack \star \left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{22} \right\rbrack \star \left\lbrack X_{6} \right\rbrack_{k - 1}}} \right\} \star \frac{L_{T2}}{J}}};$

where J is the rotational moment of the craft about the axis, and L_(T1)and L_(T2) represent either the actual lateral distance of the thrustersfrom the axis, or the equivalent lateral distances of two equivalentsingle thrusters located on opposite sides of the axis; update of theaxis 2 state variables for use in the state calculations at the nexttime point, specifically [X₅]_(k−1)=[X₅]_(k), [X₆]_(k−1)=[X₆]_(k),$\left\lbrack {\overset{.}{X}}_{6} \right\rbrack_{k - 1} = {\left\lbrack {\overset{.}{X}}_{6} \right\rbrack_{k}.}$

applying the computed thrust differences to the control of the thrustersto maintain the desired roll value.
 4. A method for integrating andcombining the altitude control, axis-1 roll control, and axis-2 rollcontrol of a flying or hovering craft having three or more thrusters toarbitrary operator-commanded values and comprising: determination ofdiscrete points in time t_(k−1), t_(k), t_(k+1), each point in timebeing separated by a fixed time interval Δt; determination, at the timepoint t_(k), of the value of the state variable {dot over (x)}₂representing vertical acceleration of the craft, the verticalacceleration being measured by sensors located on the craft;determination, at the time point t_(k), of the value of the statevariable X₂ representing vertical velocity of the craft, the verticalvelocity being measured, or computed as the vertical velocity at theprevious time point t_(k−1), plus the vertical acceleration at theprevious time point multiplied by the time interval Δt; determination,at the time point t_(k), of the value of the state variable X₁representing the actual altitude of the craft; determination, at thetime point t_(k), of the altitude error of the craft, the error beingcomputed as the difference between the actual altitude h_(actual) andthe operator-commanded altitude h_(desired) ash_(error)=h_(actual)−h_(desired); computation, at the time point t_(k),of state feedback gains K₁ and K₂; computation, at the time point t_(k),of the vertical component ν of the normal vector to the principal planeof the vehicle, said vertical component being ν=cos (θ1_(actual))*cos(θ2_(actual)), and θ1_(actual) and θ2_(actual) being the actual valuesof roll angle about axis 1 and axis 2 respectively; computation, at thetime point t_(k), of the vertical acceleration u_(k) which will restorethe altitude to its operator-commanded value, said acceleration beingcalculated as the difference u_(k)=−k₁*[h_(error)]_(k−1)−k₂└X₂┘_(k−1);computation, at the time point t_(k), of the total thrust T_(sum) whichwill create the vertical acceleration required to restore the altitudeto its operator-commanded value, said total thrust being calculated as${T_{sum} = {\left\{ {u_{k} + g} \right\}*\frac{m}{v}}},$

 m being the total mass of the craft, and g being the gravitationalacceleration; update of the altitude state variables for use in thestate calculations at the next time point, specifically[X₁]_(k−1)]=[X₁]_(k), [X₂]_(k−1)]=[X₂]_(k), [{dot over(X)}₂]_(k−1)]=[{dot over (X)}₂]_(k); application of the computed totalthrust to the control of the thrusters to maintain the desired altitude;determination, at the time point t_(k), of the value of the statevariable {dot over (X)}₄ representing roll angle acceleration of thecraft about axis 1 passing through the mass centroid of the craft, theroll angle acceleration being measured by sensors located on the craft;determination, at the time point t_(k), of the value of the statevariable X₄ representing roll velocity of the craft about axis 1, theroll velocity being measured, or computed as the roll velocity at theprevious time point t_(k−1), plus the roll acceleration at the previoustime point multiplied by the time interval Δt; determination, at thetime point t_(k), of the value of the state variable X₃=θ_(actual)representing roll angle of the craft about axis 1, the roll angle beingmeasured, or computed as the roll angle at the previous time pointt_(k−1), plus the roll velocity at the previous time point multiplied bythe time interval Δt; determination, at the time point t_(k), of thevalue of the roll angle error θ_(e) of the craft about axis 1, the errorbeing computed as the difference between the actual roll angleθ_(actual) and the operator-commanded roll angle θ_(desired) asθ_(e)=θ_(actual)−θ_(desired); computation, at the time point t_(k), ofstate feedback gains K₁₁, K₁₂, K₂₁, and K₂₂ for axis 1; computation, atthe time point t_(k), of the thrust difference T_(diff) ₁ about axis 1which will restore the axis 1 roll value to its operator-commandedvalue, the magnitude of said thrust difference being calculated as thedifference${\left\{ {{\left\lbrack k_{11} \right\rbrack*\left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{12} \right\rbrack*\left\lbrack X_{4} \right\rbrack_{k - 1}}} \right\}*\frac{L_{T1}}{J}} - {\left\{ {{\left\lbrack k_{21} \right\rbrack*\left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{22} \right\rbrack*\left\lbrack X_{4} \right\rbrack_{k - 1}}} \right\}*\frac{L_{T2}}{J}}$

where J is the rotational moment of the craft about the axis, and L_(T1)and L_(T2) represent either the actual lateral distance of the thrustersfrom the axis, or the equivalent lateral distances of two equivalentsingle thrusters located on opposite sides of the axis; update of theaxis 1 state variables for use in the state calculations at the nexttime point, specifically [X₃]_(k−1)=[X₃]_(k), [X₄]_(k−1)=[X₄]_(k), [{dotover (X)}₄]_(k−1)=[{dot over (X)}₄]_(k); application of the computedthrust differences to the control of the thrusters to maintain thedesired roll value. determination, at the time point t_(k), of the valueof the state variable {dot over (X)}₆representing roll angleacceleration of the craft about axis 2 passing through the mass centroidof the craft, the roll angle acceleration being measured by sensorslocated on the craft; determination, at the time point t_(k), of thevalue of the state variable X₆ representing roll velocity of the craftabout axis 2, the roll velocity being measured, or computed as the rollvelocity at the previous time point t_(k−1), plus the roll accelerationat the previous time point multiplied by the time interval Δt;determination, at the time point t_(k), of the value of the statevariable X₅=θ_(actual) representing roll angle of the craft about axis2, the roll angle being measured, or computed as the roll angle at theprevious time point t_(k−1), plus the roll velocity at the previous timepoint multiplied by the time interval Δt; determination, at the timepoint t_(k), of the value of the roll angle error θ_(e) of the craftabout axis 2, the error being computed as the difference between theactual roll angle θ_(actual) and the operator-commanded roll angleθ_(desired) as θ_(e)=θ_(actual)−θ_(desired); computation, at the timepoint t_(k), of state feedback gains K₁₁, K₁₂, K₂₁, and K₂₂ for axis 2;computation, at the time point t_(k), of the thrust difference T_(diff)₂ about axis 2 which will restore the axis 2 roll value to itsoperator-conunanded value, the magnitude of said thrust difference beingcalculated as the difference${\left\{ {{\left\lbrack k_{11} \right\rbrack*\left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{12} \right\rbrack*\left\lbrack X_{6} \right\rbrack_{k - 1}}} \right\}*\frac{L_{T1}}{J}} - {\left\{ {{\left\lbrack k_{21} \right\rbrack*\left\lbrack \theta_{e} \right\rbrack_{k - 1}} + {\left\lbrack k_{22} \right\rbrack*\left\lbrack X_{6} \right\rbrack_{k - 1}}} \right\}*\frac{L_{T2}}{J}}$

where J is the rotational moment of the craft about the axis, and L_(T1)and L_(T2) represent either the actual lateral distance of the thrustersfrom the axis, or the equivalent lateral distances of two equivalentsingle thrusters located on opposite sides of the axis; update of theaxis 2 state variables for use in the state calculations at the nexttime point, specifically [X₅]_(k−1)=[X₅]_(k), [X₆]_(k−1)=[X₆]_(k), [{dotover (X)}₆]_(k−1)=[{dot over (X)}₆]_(k); application of the computedthrust differences to the control of the thrusters to maintain thedesired roll value; constructing a linear equation relating the thrustdifference T_(diff) ₁ about axis 1 required for driving the roll angleabout axis 1 to the operator-commanded roll angle, said equation beings₁₁T₁+s₁₂T₂+s₁₃T₃+ . . . s_(1n)T_(n)=T_(diff) ₁ , and each of the nfactors s_(1j) in the equation representing either a positive ornegative constant, whose sign (+ or −) depends on which side of axis 1the thruster is positioned on, and whose magnitude is a scaling factorrelated to the lateral distance of the thruster from the roll axis;constructing a linear equation relating the thrust difference T_(diff) ₂about axis 2 required for driving the roll angle about axis 2 to theoperator-commanded roll angle, said equation being s₂₁T₂+s₂₂T₂+s₂₃T₃+ .. . s_(2n)T_(n)=T_(diff) ₂ , and each factor of the n factors s_(2j) inthe equation representing either a positive or negative constant, whosesign (+ or −) depends on which side of axis 2 the thruster is positionedon, and whose magnitude is a scaling factor related to the lateraldistance of the thruster from the roll axis; constructing a linearequation relating the thrust sum T_(sum) to the sum of the n thrustsrequired for driving the altitude of the craft to the operator-commandedaltitude, said equation being T₁+T₂+T₃+ . . . T_(n)=T_(sum);constructing additional linear equations, as necessary, that set thevalue of thrust T_(i) for one or more thrusters i at a fixed valuec_(i), that value being given, for example, by${T_{4} = \frac{T_{sum}}{4}},$

 or some other value that provides a physically-sensible thrust T_(i)and which provides a full set of n equations corresponding to the nunknown thrusts; solving the resulting n linear equations given above toobtain the n individual thrusts that simultaneously drive the axis 1roll value, the axis 2 roll value, and the altitude to theiroperator-commanded values, the set of simultaneous equations to besolved being given by: ${\begin{bmatrix}1 & 1 & {- 1} & {- 1} \\1 & {- 1} & 1 & {- 1} \\1 & 1 & 1 & 1 \\1 & 0 & 0 & 0\end{bmatrix}\begin{bmatrix}T_{1} \\T_{2} \\T_{3} \\T_{4}\end{bmatrix}}\quad = {\begin{bmatrix}T_{{diff}_{1}} \\T_{{diff}_{1}} \\T_{sum} \\{T_{sum}/4}\end{bmatrix}.}$

 applying the computed thrust differences and total thrusts to thecontrol of the thrusters to maintain the desired altitude and rollvalue.